package com.cy.pj.sys.web;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalTime;

/**
 * 定义spring web模块中的拦截器,通过此拦截器对handler中某些方法的
 * 进行时间访问限制
 */
@Slf4j//lombok会在当前java文件编译成class文件时,会自动在类文件中添加一个log对象
public class TimeAccessInterceptor implements HandlerInterceptor {
    /**
     * preHandle方法会在目标handler方法执行之前进行访问拦截
     * 方法返回值为true时表示请求放行,false表示请求到此结束,
     * 不再去执行handler中的方法
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        LocalTime now = LocalTime.now();//JDK8中的时间对象
        int hour = now.getHour();
        log.info("hour {}",hour);
        if (hour<=6||hour>=22)
            throw new RuntimeException("请在6-10点进行访问");
        return true;
    }
}
